ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

CHECK CONFLICTS

構文

CHECK CONFLICTSの構文は、次のとおりです。

NO CHECK |
{CHECK CONFLICTS BY ROW TIMESTAMP
               COLUMN ColumnName
               [ UPDATE BY { SYSTEM | USER } ]
               [ ON EXCEPTION { ROLLBACK WORK | NO ACTION } ]
               [ REPORT TO 'FileName' | NO REPORT ]
}
注意: CHECK CONFLICT句は、TABLE型のELEMENTに対してのみ使用できます。
パラメータ

CREATE REPLICATIONまたはALTER REPLICATION文のCHECK CONFLICTSの部分には、次のパラメータがあります。

CHECK CONFLICTS BY ROW TIMESTAMP
すべての更新競合と一意性競合の検出を指定します。競合はON EXCEPTIONパラメータで指定された方法で解消されます。
DELETE処理とUPDATE処理の競合についても検出します。
COLUMN ColumnName
レプリケートされた表の列を使用してタイムスタンプを比較します。表はELEMENTの記述のTableNameで指定されます。
ColumnNameはNULL値可能なBINARY(8)型の列で、行が最後に更新されたタイムスタンプの格納に使用されます。TimesTenでは、格納された値よりも小さいタイムスタンプ値を持つ行の更新要求が拒否されます。指定されたColumnNameは、マスターおよびサブスクライバ・データ・ストアの両方のレプリケートされた表に存在している必要があります。
NO CHECK
指定された要素に対する競合解消を行わないように指定します。
UPDATE BY {SYSTEM | USER}
タイムスタンプ値をTimesTen(SYSTEM)またはアプリケーション(USER)のどちらで管理するかを指定します。マスター・データ・ストアおよびサブスクライバ・データ・ストアのレプリケートされた表は、同じUPDATE BY指定を使用する必要があります。詳細は、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』のシステム・タイムスタンプ列のメンテナンスに関する項およびユーザー・タイムスタンプ列のメンテナンスに関する項を参照してください。
デフォルト値は、UPDATE BY SYSTEMです。
ON EXCEPTION {ROLLBACK WORK | NO ACTION}
検出された競合の解消方法を指定します。ROW TIMESTAMP競合の検出には、次の解消オプションがあります。
  • ROLLBACK WORK: 競合するアクションを含むトランザクションを強制終了します。
  • NO ACTION: 競合するアクション(UPDATEINSERTまたはCREATE VIEW)を実行せずに、トランザクションを完了します。
デフォルト値は、ON EXCEPTION ROLLBACK WORKです。
REPORT TO 'FileName'
タイムスタンプ比較に失敗した更新を記録するファイルを指定します。FileNameは、1,000文字以下のSQL文字列です(SQL文字列リテラルは一重引用符で囲まれた、空白を含むすべての文字列です)。複数の表で失敗した更新を記録するために、同一のファイルを使用できます。
NO REPORT
失敗したタイムスタンプの比較を記録しないように指定します。

説明
例13.31

MASTERDSのREPL.TABの内容を2つのサブスクライバ、SUBSCRIBER1DSとSUBSCRIBER2DSにレプリケートします。

CREATE REPLICATION REPL.TWOSUBSCRIBERS 
       ELEMENT E TABLE REPL.TAB 
         MASTER MASTERDS ON "SERVER1" 
         SUBSCRIBER SUBSCRIBER1DS ON "SERVER2", 
                    SUBSCRIBER2DS ON "SERVER3"; 
例13.32

MASTERDSデータ・ストア全体をサブスクライバSUBSCRIBER1DSにレプリケートします。FAILTHRESHOLDを指定すると、SUBSCRIBERIDSが失敗したとみなされる前に、最大10のログ・ファイルをMASTERDSに蓄積します。

CREATE REPLICATION REPL.WHOLESTORE 
  ELEMENT E DATASTORE 
     MASTER MASTERDS ON "SERVER1" 
     SUBSCRIBER SUBSCRIBER1DS ON "SERVER2" 
  STORE MASTERDS FAILTHRESHOLD 10; 
例13.33

WESTDSおよびEASTDSデータ・ストア全体を双方向にレプリケートして、RETURN TWOSAFEサービスを有効にします。

CREATE REPLICATION REPL.BIWHOLESTORE 
  ELEMENT E1 DATASTORE 
     MASTER WESTDS ON "WESTCOAST" 
     SUBSCRIBER EASTDS ON "EASTCOAST" 
        RETURN TWOSAFE 
  ELEMENT E2 DATASTORE 
     MASTER EASTDS ON "EASTCOAST" 
     SUBSCRIBER WESTDS ON "WESTCOAST" 
        RETURN TWOSAFE; 
例13.34

例13.31と同様ですが、サブスクライバSUBSCRIBER1DSへの選択トランザクション更新に対してのみ、RETURN RECIPTサービスを有効にします。

CREATE REPLICATION REPL.TWOSUBSCRIBERS 
  ELEMENT E TABLE REPL.TAB 
     MASTER MASTERDS ON "SERVER1" 
     SUBSCRIBER SUBSCRIBER1DS ON "SERVER2" 
        RETURN RECEIPT BY REQUEST 
     SUBSCRIBER SUBSCRIBER2DS ON "SERVER3"; 
例13.35

WESTデータ・ストアのCUSTOMERSWEST表の内容をROUNDUPデータ・ストアにレプリケートし、同様にEASTデータ・ストアのCUSTOMERSEAST表をROUNDUPデータ・ストアにレプリケートします。すべてのトランザクションに対してRETURN RECIPTサービスを有効にします。

CREATE REPLICATION R 
       ELEMENT WEST TABLE CUSTOMERSWEST 
         MASTER WEST ON "SERVERWEST" 
         SUBSCRIBER ROUNDUP ON "SERVERROUNDUP" 
            RETURN RECEIPT 
       ELEMENT EAST TABLE CUSTOMERSEAST 
         MASTER EAST ON "SERVEREAST" 
         SUBSCRIBER ROUNDUP ON "SERVERROUNDUP" 
            RETURN RECEIPT; 
例13.36

CENTRALDSデータ・ストアのREPL.TAB表の内容をPROPDSデータ・ストアにレプリケートし、PROPDSはBACKUP1DSおよびBACKUP2DSデータ・ストアに変更を伝播します。

CREATE REPLICATION REPL.PROPAGATOR 
       ELEMENT A TABLE REPL.TAB 
         MASTER CENTRALDS ON "FINANCE" 
         SUBSCRIBER PROPRDS ON "NETHANDLER" 
       ELEMENT B TABLE REPL.TAB 
         PROPAGATOR PROPRDS ON "NETHANDLER" 
         SUBSCRIBER BACKUP1DS ON "BACKUPSYSTEM1" 
                    BACKUP2DS ON "BACKUPSYSTEM2"; 
例13.37

EASTDSとWESTDSデータ・ストアの間で、REPL.ACCOUNTS表の内容を双方向でレプリケートします。各データ・ストアは、REPL.ACCOUNTS表のマスターとサブスクライバの両方として設定されます。

REPL.ACCOUNTS表がEASTDSとWESTDSデータ・ストアのいずれかで更新されるため、この定義にはタイムスタンプ列(TSTAMP)が含まれます。CHECK CONFLICTS句により、2つのデータ・ストア間で発生した更新競合を検出するための自動タイムスタンプ比較が開始されます。比較が失敗すると、古いタイムスタンプを持つ更新が含まれるトランザクションの全体がロールバック(破棄)されます。

CREATE REPLICATION REPL.R1 
ELEMENT ELEM_ACCOUNTS_1 TABLE REPL.ACCOUNTS 
   CHECK CONFLICTS BY ROW TIMESTAMP 
      COLUMN TSTAMP 
      UPDATE BY SYSTEM 
      ON EXCEPTION ROLLBACK 
   MASTER WESTDS ON "WESTCOAST" 
   SUBSCRIBER EASTDS ON "EASTCOAST" 
ELEMENT ELEM_ACCOUNTS_2 TABLE REPL.ACCOUNTS 
   CHECK CONFLICTS BY ROW TIMESTAMP 
      COLUMN TSTAMP 
      UPDATE BY SYSTEM 
      ON EXCEPTION ROLLBACK 
   MASTER EASTDS ON "EASTCOAST" 
   SUBSCRIBER WESTDS ON "WESTCOAST"; 
例13.38

RETURN TWOSAFEサービスを使用して、REPL.ACCOUNTS表の内容をACTIVEDSデータ・ストアからBACKUPDSデータ・ストアにレプリケートします。ACTIVEDSではTCP/IPポート40000、BACKUPDSではTCP/IPポート40001を使用します。ACTIVEDSでのトランザクションでは、可能な場合に常にコミットする必要があります。そのため、LOCAL COMMIT ACTIONを使用してレプリケーションのタイムアウト後もトランザクションがコミットされるように、また、レプリケーションが停止するとRETURN TWOSAFEサービスが無効になるようにレプリケーションを構成します。BACKUPDSデータ・ストアへの接続が中断された場合にレプリケーションでの大幅な遅延を回避するには、5つのトランザクションがタイムアウトすると無効になるようにRETURNサービスを構成します。また、RETURNサービスは、BACKUPDSデータ・ストアのレプリケーション・エージェントが100ミリ秒未満で応答した場合に再度有効になるようにも構成します。最後に、データ・ストア間の帯域幅は制限されているため、データをACTIVEDSデータ・ストアからレプリケートする場合にそのデータが圧縮されるようにレプリケーションを構成します。

CREATE REPLICATION REPL.R 
ELEMENT ELEM_ACCOUNTS_1 TABLE REPL.ACCOUNTS 
   MASTER ACTIVEDS ON "ACTIVE" 
   SUBSCRIBER BACKUPDS ON "BACKUP" 
      RETURN TWOSAFE 
ELEMENT ELEM_ACCOUNTS_2 TABLE REPL.ACCOUNTS 
   MASTER ACTIVEDS ON "ACTIVE" 
   SUBSCRIBER BACKUPDS ON "BACKUP" 
      RETURN TWOSAFE 
STORE ACTIVEDS ON "ACTIVE" 
   PORT 40000 
   LOCAL COMMIT ACTION COMMIT 
   RETURN SERVICES OFF WHEN REPLICATION STOPPED 
   DISABLE RETURN SUBSCRIBER 5 
   RESUME RETURN 100 
   COMPRESS TRAFFIC ON 
STORE BACKUPDS ON "BACKUP" 
   PORT 40001; 
関連項目

ALTER ACTIVE STANDBY PAIR
ALTER REPLICATION
CREATE ACTIVE STANDBY PAIR
DROP ACTIVE STANDBY PAIR
DROP REPLICATION